Android JUnit 测试 ClassNotFoundException
全部标签 我对单元测试还是个新手。我开始读一本关于它的书。但最重要的事情之一是必须首先进行测试(快速、隔离、可重复、self验证、及时)。好的,现在我已经准备好进行一些练习了。但是当我在springboot中构建单元测试时。我喜欢将它们分开。@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes=UnitTestApplication.class,loader=SpringApplicationContextLoader.class)@WebIntegrationTest("server.port:9000")pu
我有这个测试:@RunWith(MockitoJUnitRunner.class)publicclassmyServiceTest{@InjectMocksmyServicesubject;privatemyServicespy;@Beforepublicvoidbefore(){spy=spy(subject);}@Testpublicvoidtesting(){when(spy.print2()).thenThrow(newRuntimeException()).thenThrow(newRuntimeException()).thenReturn("completed");spy
我想测试异常的返回码。这是我的生产代码:classA{try{something...}catch(Exceptione){thrownewMyExceptionClass(INTERNAL_ERROR_CODE,e);}}以及相应的异常:classMyExceptionClassextends...{privateerrorCode;publicMyExceptionClass(interrorCode){this.errorCode=errorCode;}publicgetErrorCode(){returnthis.errorCode;}}我的单元测试:publicclassAU
全部,最近我开发了一个代码,据说是一个线程安全的类。现在我说“应该”的原因是因为即使在使用同步块(synchronizedblock)、不可变数据结构和并发类之后,由于JVM的线程调度环境,我也无法在某些情况下测试代码。也就是说,我只有纸上的测试用例,但无法复制相同的测试环境。是否有任何特定的指南或这里有经验的成员可以分享有关如何测试多线程环境的内容。 最佳答案 首先,您不能仅通过测试来确保您的类是完全线程安全的。无论您对其运行什么测试,您仍然需要让尽可能多的有经验的人检查您的代码,以检测细微的并发问题。也就是说,您可以像您所做的那
我有很多单元测试文件,它们基本上执行相同的@BeforeClass。他们启动jetty网络服务器,添加一些系统属性。所以我想知道,是否可以在运行单元测试之前只执行一次? 最佳答案 您可以使用@RunWith注释:@RunWith(JettyRunner.class)publicclassMyAwesomeTest{@Test//...}并实现一个新的RunnerpublicclassJettyRunnerextendsBlockJUnit4ClassRunner{privatestaticbooleaninitialized=fal
我是Java的新手,所以请放轻松。我有一个HashMap,其中包含如下所示的字符串键和boolean值。Mapstates=newHashMap();states.put("b_StorageAvailable",true);states.put("b_StorageWritable",true);我从函数返回的。一旦我在其他地方得到这个,我希望能够在其中一个上调用if语句来查看它是对还是错。if(states.get("b_StorageAvailable")){//Dothis}但是java一直告诉我,我需要它是一个boolean类型,而且它是一个Map类型。我怎样才能轻松做到这一
我有一个玩具Netty服务器,当他们的channel没有发生任何事情时,我正试图向他们发送心跳消息。我正在通过telnet到服务器进行测试,写一条消息然后不发送任何东西,但我没有听到任何心跳!控制台:>>telnetlocalhost6969Trying127.0.0.1...Connectedtolocalhost.Escapecharacteris'^]'.>>fooDidyousay'foo'?MyPipelineFactory.javapublicclassMyPipelineFactoryimplementsChannelPipelineFactory{privatefina
IDEA向我的groovy类发出警告`class"MyClassTest"alreadyexistsin"my.class.package"。当我运行测试时,它似乎也没有很好地保持类更新。我将添加一个保证失败或成功的断言,直到稍后它才会识别它(到目前为止似乎是任意的)。鉴于我已经通过并正确运行了Maven测试,我怀疑这只是一个IDEA配置问题这是我的pom.xml4.0.0com.xenoterraciderpf0.1.0org.springframework.bootspring-boot-starter-parent1.1.9.RELEASEorg.codehaus.gmavenp
如何在代码中为junit测试禁用java断言(不是junit断言)我已经编写了一个junit测试,但是当我运行它时,它并没有像预期的那样失败,因为断言已启用,而它们并未在生产中。有没有办法只在代码中禁用断言,以便它在IDE中运行时以及作为Maven的一部分构建时按预期工作 最佳答案 在Java中(在单个类中禁用断言)要在Java中启用或禁用断言检查,请使用setClassAssertionStatus在类加载器中。例如:Foo.class.getClassLoader().setClassAssertionStatus(Foo.cl
谢谢大家的帮助。你们中的许多人发布了(正如我应该预料的那样)的答案,表明我的整个方法是错误的,或者低级代码永远不必知道它是否在容器中运行。我倾向于同意。但是,我正在处理一个复杂的遗留应用程序,无法针对当前问题进行重大重构。让我退后一步,提出我最初问题的动机。我有一个在JBoss下运行的遗留应用程序,并对较低级别的代码进行了一些修改。我为我的修改创建了一个单元测试。为了运行测试,我需要连接到数据库。遗留代码以这种方式获取数据源:(jndiName是定义的字符串)Contextctx=newInitialContext();DataSourcedataSource=(DataSource)